#include <stdio.h>
#include <stdlib.h>
int cmp(int *x,int *y,int xcnt,int ycnt){
    int *tmpx=(int*)malloc(sizeof(int)*(xcnt+2));
    int *tmpy=(int*)malloc(sizeof(int)*(ycnt+2));
    for(int i=0;i<xcnt;i++)tmpx[i]=x[i]%101;
    for(int i=0;i<ycnt;i++)tmpy[i]=y[i]%101;
    int lx,ly;
    for(lx=0,ly=0;lx<xcnt&&ly<ycnt;lx++,ly++){
        if(tmpx[lx]!=tmpy[ly]){
            int win=(tmpy[ly]>tmpx[lx]);
            free(tmpx);
            free(tmpy);
            return win;
        }
    }
    free(tmpx);
    free(tmpy);
    return (lx==xcnt)?1:0;
}
int main(){
    int n,m;
    scanf("%d",&n);
    int **arr = (int**)malloc(sizeof(int*)*(n+3));
    int *count = (int *)malloc(sizeof(int)*(n+3));
    for(int i=0;i<n;i++){
        scanf("%d",&m);
        count[i]=m;
        arr[i]=(int*)malloc(sizeof(int)*(m+3));
        for(int j=0;j<m;j++){
            scanf("%d",&arr[i][j]);
        }
    }
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(cmp(arr[i],arr[j],count[i],count[j])){
                int *p=arr[i];
                arr[i]=arr[j];
                arr[j]=p;
                int t=count[i];
                count[i]=count[j];
                count[j]=t;
            }
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<count[i]-1;j++){
            printf("%d ",arr[i][j]);
        }
        printf("%d\n",arr[i][count[i]-1]);
        free(arr[i]);
    }
    free(arr);
    free(count);
    return 0;
}